#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int unval;
int gval = 100;

int main()
{
    printf("正文: %p\n", main);
    printf("初始化数据: %p\n", &gval);
    printf("未初始化数据: %p\n", &unval);

    int *mem = (int*)malloc(10*sizeof(int));
    printf("堆: %p\n", mem);


    int a,b,c;
    printf("栈 : %p\n", &a);
    printf("栈 : %p\n", &b);
    printf("栈 : %p\n", &c);
}




//
//int gval = 100;
//
//int main()
//{
//      printf("我是一个进程, pid: %d, ppid: %d\n", getpid(), getppid());
//
//   pid_t id = fork();
//   if(id == 0)
//   {
//       // child
//       while(1)
//       {
//           printf("我是子进程, pid : %d, ppid : %d, gval: %d, &gval: %p\n", getpid(), getppid(), gval, &gval);
//           gval++;
//           sleep(1);
//       }
//   }
//   else
//   {
//       //parent
//       while(1)
//       {
//           printf("我是父进程, pid : %d, ppid : %d, gval: %d, &gval: %p\n", getpid(), getppid(), gval, &gval);
//           sleep(1);
//       }
//   }
//}
//

//extern char **environ;
//
//int main()
//{
//    for(int i = 0; environ[i]; i++)
//    {
//        printf("%s\n", environ[i]);
//    }
//    return 0;
//}
//

//int main()
//{
//    char *isrunning=getenv("ISRUNNING");
//    printf("ISRUNNING=%s\n", isrunning);
//    if(isrunning == NULL)
//    {
//        while(1)
//        {
//            printf("当前进程首次启动!\n");
//            sleep(1);
//        }
//    }
//    else
//    {
//        printf("当前进程已经运行了,不要在启动了!\n");
//    }
//}

//int main()
//{
//    const char* arr = getenv("USER");
//    if(strcmp(arr,"fang") == 0)
//    {
//        printf("身份验证成功，程序正常执行\n");
//        return 0;
//    }
//    else{
//        printf("身份验证失败，程序无法执行\n");
//        return 1;
//    }
//
//
//    return 0;
//}



//int main()
//{
//      printf("User: %s\n", getenv("USER"));
//   // printf("%s\n", getenv("PWD"));
//
//    return 0;
//}
//

//int main(int argc, char *argv[], char *env[])
//{
//    printf("我是一个进程我的 pid:%d\n",getpid());
//
//
//   // int i=0;
//   // for(i; env[i]; i++)
//   // {
//   //     printf("env[%d]: %s\n", i, env[i]);
//   // }
//    return 0;
//}
//
//int main(int argc,char* argv[])
//{
//    printf("argc: %d\n",argc);
//    int i=0;
//    for(i;i < argc;i++)
//    {
//        printf("argv[%d]: %s \n",i,argv[i]);
//    }
//    return 1;
//}
